SalesforceのAPI使用状況をSalesforce CLIから確認する #Salesforce
どうも!西村祐二@大阪です。
SalesforceにはAPIの使用制限が設けられており、
他サービスと連携する際などにはAPIを使い過ぎないように注意して設計する必要があります。
SalesforceのGUI上の「環境」→「システム概要」からAPI使用状況を確認できますが
Salesforceにログインして対象のページに移動するのはすこし面倒だなと感じていました。
そんな中、最近オープンベータとなったSalesforce CLIを使えば簡単にAPI使用率を確認できる
コマンドが実装されていましたので今回そのコマンドをご紹介したいと思います。
SalesforceのAPI制限
まず、どのような制限があるのかおさらいしておきたいと思います。
エディションによってAPIをコールできる回数が決められています。
公式のドキュメントを見る限り、1時間に何回ではなく、24時間で何回と制限が決められています。
Salesforce のエディション | ライセンスの種類ごとの API コール数 | 24 時間あたりの合計コール数 |
---|---|---|
Developer Edition | なし | 15,000 |
・ Enterprise Edition ・ Professional Edition (API アクセス有効) |
・ Salesforce: 1,000 ・ Salesforce プラットフォーム: 1,000 ・ Force.com - One App: 200 ・ Gold Partner: 200 |
15,000 + (ライセンス数 × コール数) 最大 1,000,000 |
・ Unlimited Edition ・ Performance Edition |
・ Salesforce: 5,000 ・ Salesforce プラットフォーム: 5,000 ・ Force.com - One App: 200 ・ Gold Partner: 200 |
15,000 + (ライセンス数 × コール数) |
Sandbox | なし | 5,000,000 |
また、APIにコールを送信するアクションの中でも、次の場合を対象外になります。
- アウトバウンドメッセージ
- Apex 呼び出し
また、次のSalesforce製品で行われた特定のAPIコールは使用制限にはカウントされません。
- Heroku Connect
- SalesforceIQ
- Salesforce Marketing Cloud
- Pardot
APIコールが指定した制限数の割合を超えた場合に、メールで指定ユーザに通知するように組織で設定できます。この設定を実行するには、[設定] から、[クイック検索] ボックスに「API 使用状況通知」と入力し、[API 使用状況通知] を選択します。
事前準備
・Salesforce CLIの環境構築を行っておいてください。
下記ページを参考に環境構築お願いします。
GUI上の表示
CLIから確認する前に比較として、GUI上にはどのようにAPIの使用状況が表示されるか確認しておきましょう。
確認方法は「環境」→「システム概要」から確認することができます。
今回、SandBox環境のAPI使用状況を確認します。
右側のAPI使用状況に「8」と表示されており、24時間以内に、8回API要求をしたことがわかります。
コマンド
sfdx force:limits:api:display
というコマンドでAPIの使用状況を確認することができます。
今回、SandBox環境のAPI使用状況を確認します。また、SandBox環境は「sandbox」という名前でエイリアス設定しております。
出力結果のDailyApiRequests
がGUI上で表示されていたAPI使用状況と対応するようです。
$ sfdx force:limits:api:display -u sandbox NAME REMAINING MAXIMUM ───────────────────────────────────── ───────── ───────── ConcurrentAsyncGetReportInstances 200 200 ConcurrentSyncReportRuns 20 20 DailyApiRequests 4999991 5000000 DailyAsyncApexExecutions 250000 250000 DailyBulkApiRequests 10000 10000 DailyDurableGenericStreamingApiEvents 200000 200000 DailyDurableStreamingApiEvents 200000 200000 DailyGenericStreamingApiEvents 10000 10000 DailyStreamingApiEvents 200000 200000 DailyWorkflowEmails 31000 31000 DataStorageMB 209 209 DurableStreamingApiConcurrentClients 999 1000 FileStorageMB 209 209 HourlyAsyncReportRuns 1200 1200 HourlyDashboardRefreshes 200 200 HourlyDashboardResults 5000 5000 HourlyDashboardStatuses 999999999 999999999 HourlyODataCallout 10000 10000 HourlySyncReportRuns 500 500 HourlyTimeBasedWorkflow 50 50 MassEmail 5000 5000 SingleEmail 5000 5000 StreamingApiConcurrentClients 1000 1000
REMAINING
があと何回API要求できるかの残りの回数となります。
MAXIMUM
が24時間に何回API要求できるかの総数となります。
GUIと違って、残り何回API要求できるかという観点で表示されており
開発する際にはこちらのほうが参考になるかもしれません。
また、ファイルストレージの容量であったり、Emailに関する制限も確認することができます。
さいごに
いかがだったでしょうか。
API制限に引っかかり、Salesforceが止まってしまうと
業務に大きな影響を与えてしまう可能性があるため、
素早くAPIの使用状況を確認できるこのコマンドは重宝するのではないでしょうか。
また、API使用状況以外にも情報が取得できるので、
例えば、ファイルストレージの残容量が一定以下になったら通知するような仕組みも作れそうです。